package response

import (
	"github.com/gogf/gf/v2/errors/gcode"
	"github.com/gogf/gf/v2/net/ghttp"
)

type JsonRes struct {
	Code    int         `json:"code"`    // 错误码（0：成功，1：失败，>1错误码）
	Message string      `json:"message"` //提示信息
	Data    interface{} `json:"data"`    //返回数据
}

// 返回标准json数据
func Json(r *ghttp.Request, code gcode.Code, data interface{}) {
	if code == nil && data == nil {
		code = CodeInternal
	} else if code == nil {
		code = CodeSuccess
	}
	r.Response.WriteJson(JsonRes{
		Code:    code.Code(),
		Message: code.Message(),
		Data:    data,
	})
}

func JsonExit(r *ghttp.Request, code gcode.Code, data interface{}) {
	Json(r, code, data)
	r.Exit()
}
